package com.shujia.four;

import org.junit.Test;

import java.util.Arrays;

public class StringDemo3 {

    @Test
    public void test4() throws Exception {
        // 字符串 -> 字节数组
        String s1 = "弓摧南山虎，手接太行猱。酒后竞风采，三杯弄宝刀。";
//        s1 = "abc";
//        s1 = "弓";
        //byte[] bytes = s1.getBytes();// 默认编码 UTF-8
        byte[] bytes = s1.getBytes("GBK");
        System.out.println(Arrays.toString(bytes));

        // 字节数组 -> 字符串
        // String result = new String(bytes);// 默认编码 UTF-8
         String result = new String(bytes, "GBK");// 指定编码 GBK
        System.out.println(result);
    }


    @Test
    public void test3() {
        // 字符数组 -> 字符串
        char[] arr = {'你', '好', 'h', 'e', 'l', 'l', 'o'};
        // String的构造方法
        // String str = new String(arr);
        // String(char[]，int offset，int  length)
        String str = new String(arr, 2, 5);
        System.out.println(str);

        // 字符串 -> 字符数组
        String s1 = "弓摧南山虎，手接太行猱。酒后竞风采，三杯弄宝刀。";
        char[] chars = s1.toCharArray();
        System.out.println(Arrays.toString(chars));

    }

    @Test
    public void test2() {
        /*
        基本数据类型、包装类 -> 字符串
         */
        int i = 10;
        Integer integer = 20;

        String str = i + "";// 拼接空串
        str = integer + "";

        str = String.valueOf(i);
        str = String.valueOf(integer);// 自动拆箱
        str = integer.toString();
    }


    @Test
    public void test1() {
        /*
        字符串 -> 基本数据类型、包装类
         */
        String str = "10";
        int i = Integer.parseInt(str);
        Integer integer = Integer.valueOf(str);

        // 因为有自动拆装箱, parseInt, valueOf方法可以混合使用
        i = Integer.valueOf(str);
        integer = Integer.parseInt(str);
    }
}
